Set – Get 方法

set方法

  • 作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤.
  • 命名规范: -方法名必须以set开头;
    • set后面跟上成员变量的名称,成员变量的首字母必须大写;
    • 方法的返回值一定是void
    • 一定要接收一个参数,而且参数类型跟成员变量类型一致;
    • 形参的名称不能和成员变量名一致;

例:

//  People.h

#import <Foundation/Foundation.h>

@interface People : NSObject

{
    int age;
}

- (void)setAge:(int)newAge;

@end


//  People.m

#import "People.h"

@implementation People

- (void)setAge:(int)newAge
{
    if (newAge <= 0) {
        newAge = 1;
    }
    age = newAge;
}

@end

get 方法

  • 作用:返回对象内部的成员变量
  • 命名规范:
    • 肯定有返回值,返回值类型肯定与成员变量一致;
    • 方法名跟成员变量名一样;
    • 不需接收任何参数;

例:

//  People.h

#import <Foundation/Foundation.h>

@interface People : NSObject

{
    int age;
}

- (int)age;

@end


//  People.m

#import "People.h"

@implementation People

- (int)age
{
    return age;
}

@end

点语法

利用点语法替代set和get方法

方法调用
Person * p = [Person new];
[p setAge:20];
int age = [p age];
点语法
p.age = 20;
int age = p.age;
点语法的本质
  • c中点语法的本质还是方法调用;
  • 当使用点语法时,编译器会自动展开成相应的方法;

p.age = 20; 展开为:[p setAge:20];

int age = p.age; 展开为:int age = [p age];

死循环注意
- (void)setAge:(int)age
{
    //会引起死循环
    self.age = age;
}


- (int)age
{
    //会引起死循环
    return self.age;
}

results matching ""

    No results matching ""